#include <nanobind/nanobind.h>

int add(int a, int b) { return a + b; }
namespace nb = nanobind;
nb::object my_call(nb::callable callable) {
    nb::list list;
    nb::dict dict;

    list.append("positional");
    dict["keyword"] = "value";

    return callable(1, *list, **dict);
}

NB_MODULE(my_ext, m) {
    m.def("add", &add);
    m.def("my_call", &my_call);
}